home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 April: Mac OS SDK / Dev.CD Apr 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / PInterfaces / StandardFile.p < prev    next >
Encoding:
Text File  |  1995-07-06  |  9.4 KB  |  291 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        StandardFile.p
  3.  
  4.      Contains:    Standard File package Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. }
  19.  
  20. {$IFC UNDEFINED UsingIncludes}
  21. {$SETC UsingIncludes := 0}
  22. {$ENDC}
  23.  
  24. {$IFC NOT UsingIncludes}
  25.  UNIT StandardFile;
  26.  INTERFACE
  27. {$ENDC}
  28.  
  29. {$IFC UNDEFINED __STANDARDFILE__}
  30. {$SETC __STANDARDFILE__ := 1}
  31.  
  32. {$I+}
  33. {$SETC StandardFileIncludes := UsingIncludes}
  34. {$SETC UsingIncludes := 1}
  35.  
  36.  
  37. {$IFC UNDEFINED __TYPES__}
  38. {$I Types.p}
  39. {$ENDC}
  40. {    ConditionalMacros.p                                            }
  41.  
  42. {$IFC UNDEFINED __DIALOGS__}
  43. {$I Dialogs.p}
  44. {$ENDC}
  45. {    Errors.p                                                    }
  46. {    Memory.p                                                    }
  47. {        MixedMode.p                                                }
  48. {    Menus.p                                                        }
  49. {        Quickdraw.p                                                }
  50. {            QuickdrawText.p                                        }
  51. {    Controls.p                                                    }
  52. {    Windows.p                                                    }
  53. {        Events.p                                                }
  54. {            OSUtils.p                                            }
  55. {    TextEdit.p                                                    }
  56.  
  57. {$IFC UNDEFINED __FILES__}
  58. {$I Files.p}
  59. {$ENDC}
  60. {    Finder.p                                                    }
  61.  
  62. {$PUSH}
  63. {$ALIGN MAC68K}
  64. {$LibExport+}
  65.  
  66. CONST
  67. { resource IDs and item offsets of pre-7.0 dialogs }
  68.     putDlgID                    = -3999;
  69.     putSave                        = 1;
  70.     putCancel                    = 2;
  71.     putEject                    = 5;
  72.     putDrive                    = 6;
  73.     putName                        = 7;
  74.     getDlgID                    = -4000;
  75.     getOpen                        = 1;
  76.     getCancel                    = 3;
  77.     getEject                    = 5;
  78.     getDrive                    = 6;
  79.     getNmList                    = 7;
  80.     getScroll                    = 8;
  81. { resource IDs and item offsets of 7.0 dialogs }
  82.     sfPutDialogID                = -6043;
  83.     sfGetDialogID                = -6042;
  84.     sfItemOpenButton            = 1;
  85.     sfItemCancelButton            = 2;
  86.     sfItemBalloonHelp            = 3;
  87.     sfItemVolumeUser            = 4;
  88.     sfItemEjectButton            = 5;
  89.  
  90.     sfItemDesktopButton            = 6;
  91.     sfItemFileListUser            = 7;
  92.     sfItemPopUpMenuUser            = 8;
  93.     sfItemDividerLinePict        = 9;
  94.     sfItemFileNameTextEdit        = 10;
  95.     sfItemPromptStaticText        = 11;
  96.     sfItemNewFolderUser            = 12;
  97. { pseudo-item hits for use in DlgHook }
  98.     sfHookFirstCall                = -1;
  99.     sfHookCharOffset            = $1000;
  100.     sfHookNullEvent                = 100;
  101.     sfHookRebuildList            = 101;
  102.     sfHookFolderPopUp            = 102;
  103.     sfHookOpenFolder            = 103;
  104. { the following are only in system 7.0+ }
  105.     sfHookOpenAlias                = 104;
  106.     sfHookGoToDesktop            = 105;
  107.     sfHookGoToAliasTarget        = 106;
  108.     sfHookGoToParent            = 107;
  109.     sfHookGoToNextDrive            = 108;
  110.     sfHookGoToPrevDrive            = 109;
  111.     sfHookChangeSelection        = 110;
  112.  
  113.     sfHookSetActiveOffset        = 200;
  114.     sfHookLastCall                = -2;
  115.  
  116. { the refcon field of the dialog record during a
  117.  modalfilter or dialoghook contains one of the following }
  118.     sfMainDialogRefCon            = 'stdf';
  119.     sfNewFolderDialogRefCon        = 'nfdr';
  120.     sfReplaceDialogRefCon        = 'rplc';
  121.     sfStatWarnDialogRefCon        = 'stat';
  122.     sfLockWarnDialogRefCon        = 'lock';
  123.     sfErrorDialogRefCon            = 'err ';
  124.  
  125.  
  126. TYPE
  127.     SFReply = RECORD
  128.         good:                    BOOLEAN;
  129.         copy:                    BOOLEAN;
  130.         fType:                    OSType;
  131.         vRefNum:                INTEGER;
  132.         version:                INTEGER;
  133.         fName:                    Str63;
  134.     END;
  135.  
  136.     StandardFileReply = RECORD
  137.         sfGood:                    BOOLEAN;
  138.         sfReplacing:            BOOLEAN;
  139.         sfType:                    OSType;
  140.         sfFile:                    FSSpec;
  141.         sfScript:                ScriptCode;
  142.         sfFlags:                INTEGER;
  143.         sfIsFolder:                BOOLEAN;
  144.         sfIsVolume:                BOOLEAN;
  145.         sfReserved1:            LONGINT;
  146.         sfReserved2:            INTEGER;
  147.     END;
  148.  
  149. { for CustomXXXFile, ActivationOrderListPtr parameter is a pointer to an array of item numbers }
  150.     ActivationOrderListPtr = ^INTEGER;
  151.  
  152. { the following also include an extra parameter of "your data pointer" }
  153.     DlgHookProcPtr = ProcPtr;  { FUNCTION DlgHook(item: INTEGER; theDialog: DialogPtr): INTEGER; }
  154.     FileFilterProcPtr = ProcPtr;  { FUNCTION FileFilter(pb: CInfoPBPtr): BOOLEAN; }
  155.     DlgHookYDProcPtr = ProcPtr;  { FUNCTION DlgHookYD(item: INTEGER; theDialog: DialogPtr; yourDataPtr: UNIV Ptr): INTEGER; }
  156.     ModalFilterYDProcPtr = ProcPtr;  { FUNCTION ModalFilterYD(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER; yourDataPtr: UNIV Ptr): BOOLEAN; }
  157.     FileFilterYDProcPtr = ProcPtr;  { FUNCTION FileFilterYD(pb: CInfoPBPtr; yourDataPtr: UNIV Ptr): BOOLEAN; }
  158.     ActivateYDProcPtr = ProcPtr;  { PROCEDURE ActivateYD(theDialog: DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: UNIV Ptr); }
  159.     DlgHookUPP = UniversalProcPtr;
  160.     FileFilterUPP = UniversalProcPtr;
  161.     DlgHookYDUPP = UniversalProcPtr;
  162.     ModalFilterYDUPP = UniversalProcPtr;
  163.     FileFilterYDUPP = UniversalProcPtr;
  164.     ActivateYDUPP = UniversalProcPtr;
  165.  
  166. CONST
  167.     uppDlgHookProcInfo = $000003A0; { FUNCTION (2 byte param, 4 byte param): 2 byte result; }
  168.     uppFileFilterProcInfo = $000000D0; { FUNCTION (4 byte param): 1 byte result; }
  169.     uppDlgHookYDProcInfo = $00000FA0; { FUNCTION (2 byte param, 4 byte param, 4 byte param): 2 byte result; }
  170.     uppModalFilterYDProcInfo = $00003FD0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 4 byte param): 1 byte result; }
  171.     uppFileFilterYDProcInfo = $000003D0; { FUNCTION (4 byte param, 4 byte param): 1 byte result; }
  172.     uppActivateYDProcInfo = $000036C0; { PROCEDURE (4 byte param, 2 byte param, 1 byte param, 4 byte param); }
  173.  
  174. FUNCTION NewDlgHookProc(userRoutine: DlgHookProcPtr): DlgHookUPP;
  175.     {$IFC NOT GENERATINGCFM }
  176.     INLINE $2E9F;
  177.     {$ENDC}
  178.  
  179. FUNCTION NewFileFilterProc(userRoutine: FileFilterProcPtr): FileFilterUPP;
  180.     {$IFC NOT GENERATINGCFM }
  181.     INLINE $2E9F;
  182.     {$ENDC}
  183.  
  184. FUNCTION NewDlgHookYDProc(userRoutine: DlgHookYDProcPtr): DlgHookYDUPP;
  185.     {$IFC NOT GENERATINGCFM }
  186.     INLINE $2E9F;
  187.     {$ENDC}
  188.  
  189. FUNCTION NewModalFilterYDProc(userRoutine: ModalFilterYDProcPtr): ModalFilterYDUPP;
  190.     {$IFC NOT GENERATINGCFM }
  191.     INLINE $2E9F;
  192.     {$ENDC}
  193.  
  194. FUNCTION NewFileFilterYDProc(userRoutine: FileFilterYDProcPtr): FileFilterYDUPP;
  195.     {$IFC NOT GENERATINGCFM }
  196.     INLINE $2E9F;
  197.     {$ENDC}
  198.  
  199. FUNCTION NewActivateYDProc(userRoutine: ActivateYDProcPtr): ActivateYDUPP;
  200.     {$IFC NOT GENERATINGCFM }
  201.     INLINE $2E9F;
  202.     {$ENDC}
  203.  
  204. FUNCTION CallDlgHookProc(item: INTEGER; theDialog: DialogPtr; userRoutine: DlgHookUPP): INTEGER;
  205.     {$IFC NOT GENERATINGCFM}
  206.     INLINE $205F, $4E90;
  207.     {$ENDC}
  208.  
  209. FUNCTION CallFileFilterProc(pb: CInfoPBPtr; userRoutine: FileFilterUPP): BOOLEAN;
  210.     {$IFC NOT GENERATINGCFM}
  211.     INLINE $205F, $4E90;
  212.     {$ENDC}
  213.  
  214. FUNCTION CallDlgHookYDProc(item: INTEGER; theDialog: DialogPtr; yourDataPtr: UNIV Ptr; userRoutine: DlgHookYDUPP): INTEGER;
  215.     {$IFC NOT GENERATINGCFM}
  216.     INLINE $205F, $4E90;
  217.     {$ENDC}
  218.  
  219. FUNCTION CallModalFilterYDProc(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER; yourDataPtr: UNIV Ptr; userRoutine: ModalFilterYDUPP): BOOLEAN;
  220.     {$IFC NOT GENERATINGCFM}
  221.     INLINE $205F, $4E90;
  222.     {$ENDC}
  223.  
  224. FUNCTION CallFileFilterYDProc(pb: CInfoPBPtr; yourDataPtr: UNIV Ptr; userRoutine: FileFilterYDUPP): BOOLEAN;
  225.     {$IFC NOT GENERATINGCFM}
  226.     INLINE $205F, $4E90;
  227.     {$ENDC}
  228.  
  229. PROCEDURE CallActivateYDProc(theDialog: DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: UNIV Ptr; userRoutine: ActivateYDUPP);
  230.     {$IFC NOT GENERATINGCFM}
  231.     INLINE $205F, $4E90;
  232.     {$ENDC}
  233.     
  234. TYPE
  235.     SFTypeList = ARRAY [0..3] OF OSType;
  236.  
  237. {
  238.     The GetFile "typeList" parameter type has changed from "SFTypeList" to "ConstSFTypeListPtr".
  239.     For C, this will add "const" and make it an in-only parameter.
  240.     For Pascal, this will require client code to use the @ operator, but make it easier to specify long lists.
  241.  
  242.     ConstSFTypeListPtr is a pointer to an array of OSTypes.
  243. }
  244.     ConstSFTypeListPtr = ^OSType;
  245.  
  246.  
  247. PROCEDURE SFPutFile(where: Point; prompt: ConstStr255Param; origName: ConstStr255Param; dlgHook: DlgHookUPP; VAR reply: SFReply);
  248.     {$IFC NOT GENERATINGCFM}
  249.     INLINE $3F3C, $0001, $A9EA;
  250.     {$ENDC}
  251. PROCEDURE SFGetFile(where: Point; prompt: ConstStr255Param; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; VAR reply: SFReply);
  252.     {$IFC NOT GENERATINGCFM}
  253.     INLINE $3F3C, $0002, $A9EA;
  254.     {$ENDC}
  255. PROCEDURE SFPPutFile(where: Point; prompt: ConstStr255Param; origName: ConstStr255Param; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP);
  256.     {$IFC NOT GENERATINGCFM}
  257.     INLINE $3F3C, $0003, $A9EA;
  258.     {$ENDC}
  259. PROCEDURE SFPGetFile(where: Point; prompt: ConstStr255Param; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP);
  260.     {$IFC NOT GENERATINGCFM}
  261.     INLINE $3F3C, $0004, $A9EA;
  262.     {$ENDC}
  263. PROCEDURE StandardPutFile(prompt: ConstStr255Param; defaultName: ConstStr255Param; VAR reply: StandardFileReply);
  264.     {$IFC NOT GENERATINGCFM}
  265.     INLINE $3F3C, $0005, $A9EA;
  266.     {$ENDC}
  267. PROCEDURE StandardGetFile(fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; VAR reply: StandardFileReply);
  268.     {$IFC NOT GENERATINGCFM}
  269.     INLINE $3F3C, $0006, $A9EA;
  270.     {$ENDC}
  271. PROCEDURE CustomPutFile(prompt: ConstStr255Param; defaultName: ConstStr255Param; VAR reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: UNIV Ptr);
  272.     {$IFC NOT GENERATINGCFM}
  273.     INLINE $3F3C, $0007, $A9EA;
  274.     {$ENDC}
  275. PROCEDURE CustomGetFile(fileFilter: FileFilterYDUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; VAR reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: UNIV Ptr);
  276.     {$IFC NOT GENERATINGCFM}
  277.     INLINE $3F3C, $0008, $A9EA;
  278.     {$ENDC}
  279. FUNCTION StandardOpenDialog(VAR reply: StandardFileReply): OSErr;
  280.  
  281. {$ALIGN RESET}
  282. {$POP}
  283.  
  284. {$SETC UsingIncludes := StandardFileIncludes}
  285.  
  286. {$ENDC} {__STANDARDFILE__}
  287.  
  288. {$IFC NOT UsingIncludes}
  289.  END.
  290. {$ENDC}
  291.